package srv;

import java.util.List;

import dao.OrdenPedidoDAO;
import Dominio.Cliente;
import Dominio.Cotizacion;
import Dominio.ItemOrdenDePedido;
import Dominio.OrdenDePedido;
import Dominio.Rodamiento;

public class srvOrdenPedido {
	
	private static OrdenPedidoDAO daoOrdenPedido = OrdenPedidoDAO.getInstancia();
	
	public void persistOrdenPedido(OrdenDePedido ordenPedido)
	{
		daoOrdenPedido.persistOrdenPedido(ordenPedido);
	}
	
	public OrdenDePedido crearOrdenPedido(Cliente cliente){
		OrdenDePedido orden = new OrdenDePedido();
		orden.setCliente(cliente);
		orden.setEstado("Pendiente");
		return daoOrdenPedido.persistOrdenPedido(orden);
	}
	
	public void persistItemPedido(ItemOrdenDePedido item){
		daoOrdenPedido.persistItemPedido(item);
	}
	
	public OrdenDePedido getOrdenPedido(int numeroOrdenPedido){
		return daoOrdenPedido.getOrdenPedido(numeroOrdenPedido);
	}
	
	public ItemOrdenDePedido getItemPedido(int idItemPedido){
		return daoOrdenPedido.getItemPedido(idItemPedido);
	}
	
	public List<OrdenDePedido> listarOrdenesDePedido(){
		return daoOrdenPedido.listarOrdenesDePedido();
	}

	public List<ItemOrdenDePedido> listarItemsOrdenDePedido(int nroOrdenDePedido){
		return daoOrdenPedido.listarItemsOrdenDePedido(nroOrdenDePedido);
	}

	
	public void asignarCotizacionOrdenPedido(OrdenDePedido orden, Cotizacion cotizacion){
		orden.getCotizaciones().add(cotizacion);
		daoOrdenPedido.persistOrdenPedido(orden);
	}
	
	public void agregarItemOrdenPedido(OrdenDePedido orden, ItemOrdenDePedido item){
		orden.getItemsDePedido().add(item);
		daoOrdenPedido.persistOrdenPedido(orden);
	}
	
	public ItemOrdenDePedido crearItemPedido(int cantidad, OrdenDePedido ordenDePedido, Rodamiento rodamiento){
		ItemOrdenDePedido item = new ItemOrdenDePedido();
		item.setCantidad(cantidad);
		//item.setOrdenDePedido(ordenDePedido);
		item.setRodamiento(rodamiento);
		return daoOrdenPedido.persistItemPedido(item);
	}
	public OrdenDePedido obtenerOP(String numOP) {
		return daoOrdenPedido.getOrdenPedidoPorNum(numOP);
	}

	public void actualizarOrdenDePedido(OrdenDePedido actualizada) 
	{
		daoOrdenPedido.actualizarOrden(actualizada);
		
	}


}
